#ifndef COMPILATIOINFODIALOG_H
#define COMPILATIOINFODIALOG_H

/**
Nectarine Utility Project is a software interface for the web system 'demovibes'
Copyright (C) 2010  Alexandre LAURENT

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

website: http://code.google.com/p/nectarine-utility-project/
e-mail: lw.demoscene@gmail.com
**/

#include <QDialog>

#include "../Types/compilation.h"

class QWidget;
class QGridLayout;
class QVBoxLayout;
class QHBoxLayout;
class QLabel;
class QFrame;
class QListWidget;
class QTableWidget;
class QGroupBox;
class QPushButton;
class QTextEdit;
class QScrollArea;

class CompilationInfoDialog : public QDialog
{
    Q_OBJECT

private:

    QVBoxLayout* pMainGrid;

    QLabel* pTitleLabel;
    QLabel* pLabelLabel;
    QFrame* pHLine1;

    QLabel* pMediaTypeLabel;
    QLabel* pSourceLabel;
    QLabel* pPurchaseLabel;
    QLabel* pDownloadPageLabel;
    QLabel* pLengthLabel;
    QFrame* pHLine2;

    QHBoxLayout* pDetailsLayout;
    QTextEdit* pDescriptionViewer;
    QFrame* pVLine1;
    QTextEdit* pNotesViewer;

    QHBoxLayout* pCompilationInfoLayout;
    QGroupBox* pArtistsBox;
    QVBoxLayout* pArtistsBoxLayout;
    QListWidget* pArtistsList;
    QGroupBox* pGroupsBox;
    QVBoxLayout* pGroupsBoxLayout;
    QListWidget* pGroupsList;
    QGroupBox* pSongsBox;
    QVBoxLayout* pSongsBoxLayout;
    QTableWidget* pSongsList;

    QFrame* pHLine3;
    QLabel* pUploadInfoLabel;

    QPushButton* pValidateButton;

protected slots:

    void accept(void);
    void reject(void);

signals:

    void deleteCIDSignal(CompilationInfoDialog* pCID);

public:

    CompilationInfoDialog(const Compilation& c, QWidget* parent=0);
    ~CompilationInfoDialog(void);
};

#endif // COMPILATIOINFODIALOG_H
